package cn.shujuhai.qtadmin.platform.mapper;

import java.util.Date;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import cn.shujuhai.qtadmin.platform.domain.SysLogging;

/**
 * @Entity cn.shujuhai.qtadmin.platform.domain.SysLogging
 * @author dch
 */
@Mapper
public interface SysLoggingMapper extends BaseMapper<SysLogging> {

    /**
     * 数据备份
     *
     * @param tableName
     *            备份表表名
     * @param dateTime
     *            创建时间
     */
    @Insert("INSERT INTO ${tableName} SELECT  * FROM sys_logging WHERE create_time < #{dateTime}")
    void bakCurrentDatas(@Param("tableName") String tableName, @Param("dateTime") Date dateTime);

    /**
     * 检查表是否存在
     *
     * @param tableName
     *            备份表表名
     * @return 备份表表名
     */
    @Select("show TABLES like #{tableName}")
    String checkTableExistsWithSchema(@Param("tableName") String tableName);

    /**
     * 创建表
     *
     * @param tableName
     *            备份表表名
     */
    void createBakTable(@Param("tableName") String tableName);

    /**
     * 删除表
     *
     * @param tableName
     *            表名
     */
    void dropTable(@Param("tableName") String tableName);

}
